package com.qf.hospital.vo;

import com.qf.hospital.enums.HospitalExceptionEnums;

import java.util.HashMap;

/**
 * 映射返回结果的POJO类
 * @author zjw
 * @description
 * @date 2021/10/9 10:35
 */
public class R extends HashMap {


    /**
     * 操作成功，返回code和msg
     * @return
     */
    public static R ok(String msg){
        R r = new R();
        r.put("code",0);
        r.put("msg",msg);
        return r;
    }

    /**
     * 操作成功，返回code和msg
     * @return
     */
    public static R ok(){
        R r = new R();
        r.put("code",0);
        r.put("msg","");
        return r;
    }

    /**
     * 操作成功，额外返回data
     * @param data
     * @return
     */
    public static R ok(Object data){
        R r = R.ok();
        r.put("data",data);
        return r;
    }

    /**
     * 操作成功，额外返回count和data
     * @param count
     * @param data
     * @return
     */
    public static R ok(long count,Object data){
        R r = R.ok();
        r.put("count",count);
        r.put("data",data);
        return r;
    }

    /**
     * 操作失败，指定好错误code码以及错误信息
     * @param code
     * @param msg
     * @return
     */
    public static R error(int code,String msg){
        R r = new R();
        r.put("code",code);
        r.put("msg",msg);
        return r;
    }

    /**
     * 操作失败，指定好错误code码以及错误信息
     * @param enums
     * @return
     */
    public static R error(HospitalExceptionEnums enums,String msg){
        R r = new R();
        r.put("code",enums.getCode());
        r.put("msg",enums.getMsg() + msg);
        return r;
    }

    /**
     * 操作失败，指定好错误code码以及错误信息
     * @param enums
     * @return
     */
    public static R error(HospitalExceptionEnums enums){
        R r = new R();
        r.put("code",enums.getCode());
        r.put("msg",enums.getMsg());
        return r;
    }
}
